跳到主要内容

数据预处理技术

二值化

这是当需要将数值转换为布尔值时使用的预处理技术。我们可以用一种内置的方法来二值化输入数据,比如说用0.5作为阈值,方法如下 -

data_binarized = preprocessing.Binarizer(threshold = 0.5).transform(input_data)
print("\nBinarized data:\n", data_binarized)

现在,运行上面的代码后,将得到以下输出,所有高于0.5(阈值)的值将被转换为1,并且所有低于0.5的值将被转换为0。

平均去除

这是机器学习中使用的另一种非常常见的预处理技术。 基本上它用于消除特征向量的均值,以便每个特征都以零为中心。 还可以消除特征向量中的特征偏差。 为了对样本数据应用平均去除预处理技术,可以编写如下Python代码。 代码将显示输入数据的平均值和标准偏差。

print("Mean = ", input_data.mean(axis = 0)) # 平均值
print("Std deviation = ", input_data.std(axis = 0)) # 标准差

删除数据的平均值和标准差

data_scaled = preprocessing.scale(input_data)
print("Mean =", data_scaled.mean(axis=0))
print("Std deviation =", data_scaled.std(axis = 0))

缩放

特征值随机多样,通过缩放,使特征值不会或大或小,转化成特征矢量。

最大最小缩放

data_scaler_minmax = preprocessing.MinMaxScaler(feature_range=(0,1))
data_scaled_minmax = data_scaler_minmax.fit_transform(input_data)
print ("\nMin max scaled data:\n", data_scaled_minmax)

正常化

用于修改特征向量

L1 标准化

最小绝对偏差。让绝对值的综合在每行中总是最多为 1。

## Normalize data
data_normalized_l1 = preprocessing.normalize(input_data, norm = 'l1')
print("\nL1 normalized data:\n", data_normalized_l1)

L2 标准化

最小二乘法,这种归正常化修改了这些值,以便每一行中的平方和总是最多为 1。

## Normalize data
data_normalized_l2 = preprocessing.normalize(input_data, norm = 'l2')
print("\nL2 normalized data:\n", data_normalized_l2)